#ifndef _CONTROLLER_H_
#define _CONTROLLER_H_
#include <OIS/OIS.h>
#include "PapaBallMsg.h"
class World;
class AbstractController
{
protected:
	Ogre::String mName;
	World *mWorld;
	OIS::InputManager* mInputMgr;
public://interface
	virtual ~AbstractController(){}
	virtual void Initialization()=0;
	virtual void Send(PapaBallMsg msg)=0;
	virtual void AddTimeStart(Ogre::Real deltaTime){};
	virtual void AddTime(Ogre::Real deltaTime)=0;
	virtual void AddTimeEnded(Ogre::Real deltaTime){};

	void SetControllerName(Ogre::String name){mName=name;}
	Ogre::String GetControllerName(){return mName;}
	
	void SetInputMgr(OIS::InputManager* mgr){mInputMgr = mgr;}
	void setWorld(World *world){mWorld = world;}
};




#endif